<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
<%@ include file="/admin/include/init_admin.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
	<title><%= SYSTEM_NAME %> 관리자</title>
	<%@ include file="/admin/include/cssnjs.jsp"  %>
	<script type="text/javascript">
	<!--
	
	$(document).ready(function() {
		document.form1.id.value 		= getCookie("cti_id");
		document.form1.password.value	= getCookie("cti_password");
		document.form1.extension.value	= getCookie("cti_extension");
	});
	
	
	
	// CTI 상태정보를 저장할 변수
	var statusCode;
	var statusName;
	
	//2013-01-08 추가 Start//
	var groupCode1;
	var groupCode2;
	var groupCode3;
	var groupCode4;
	var groupCode5;
	//2013-01-08 추가 End//
	
	function func_loadingCheck() {
		var rtn;
		rtn = false;
		if(document.getElementById("CTIA") != null)
			document.getElementById("CTIA").isActive() == true ? rtn = true : rtn = false;
			
		if(rtn == false) {
			alert("CTI 모둘이 로딩되지 않았습니다.\n로딩 후 사용하세요.");
		} else {
			document.getElementById("CTIA").isConnectedSocket() == true ? rtn = true : rtn = false;
			if(rtn == false)
				alert("CTI서버와 접속되지 않았습니다.\n접속 후 사용하세요.");
		}
		return rtn;
	}
	
	function func_login(id, password, extension) { // 로그인
		if(func_loadingCheck() == false)
			return;
			
		if(id == "") {
			//alert("아이디를 입력하세요.");
			document.form1.id.focus();
			return;
		}
		if(password == "") {
			//alert("비밀번호를 입력하세요.");
			document.form1.password.focus();
			return;
		}
		if(extension == "") {
			//alert("내선번호를 입력하세요.");
			document.form1.extension.focus();
			return;
		}
		document.form1.loginId.value = id;
		
		saveCookie("cti_id", document.form1.id.value, 30);
		saveCookie("cti_password", document.form1.password.value, 30);
		saveCookie("cti_extension", document.form1.extension.value, 30);
		
		
		document.getElementById("CTIA").login(id, password, extension);
	}
	
	function func_forceLogin(id, password, extension) { // 강제로그인
		if(func_loadingCheck() == false)
			return;
		if(id == "") {
			alert("아이디를 입력하세요.");
			return;
		}
		if(password == "") {
			alert("비밀번호를 입력하세요.");
			return;
		}
		if(extension == "") {
			alert("내선번호를 입력하세요.");
			return;
		}
		document.form1.loginId.value = id;
		
		document.getElementById("CTIA").forceLogin(id, password, extension);
	}
	
	function func_logout() { // 로그아웃
		if(func_loadingCheck() == false)
			return;
		document.getElementById("CTIA").logout();
		location.reload();
	}
	
	function func_answer() { // 전화받기
		if(func_loadingCheck() == false)
			return;
		document.getElementById("CTIA").answer();
	}
	
	function func_hangup() { // 전화끊기
		if(func_loadingCheck() == false)
			return;
		document.getElementById("CTIA").hangup();
	}
	
	function func_changePassword(newPassword) { // 비밀번호변경
		if(func_loadingCheck() == false)
			return;
		if(newPassword == "") {
			alert("비밀번호를 입력하세요.");
			return;
		}
		
		
		document.getElementById("CTIA").changePassword(newPassword);
	}
	
	function func_makeCall(cid, callNum, userData) { // 전화걸기
		if(func_loadingCheck() == false)
			return;
		if(callNum == "") {
			alert("전화번호를 입력하세요.");
			return;
		}
		document.getElementById("CTIA").makeCall(cid, callNum, userData); 
	}
	
	function func_pickup() { // 당겨받기
		if(func_loadingCheck() == false)
			return;
		document.getElementById("CTIA").pickup();
	}
	
	function func_hold() { // 보류
		if(func_loadingCheck() == false)
			return;
		document.getElementById("CTIA").hold();
	}
	
	function func_unhold() { // 보류해제
		if(func_loadingCheck() == false)
			return;
		document.getElementById("CTIA").unhold();
	}
	
	function func_blindTransfer(callNum, userData) { // 블라인드 호전환
		if(func_loadingCheck() == false)
			return;
		if(callNum == "") {
			alert("전화번호를 입력하세요.");
			return;
		}
		document.getElementById("CTIA").blindTransfer(callNum, userData); 
	}
	
	function func_monitorTransfer() { // 모니터 호전환
		if(func_loadingCheck() == false)
			return;
			
		document.getElementById("CTIA").monitorTransfer(); 
	}
	
	function func_threeWayCall() { // 3자통화
		if(func_loadingCheck() == false)
			return;
			
		document.getElementById("CTIA").threeWayCall(); 
	}
	
	function func_changeTellerMode(tellerMode) { // 상담모드변경
		if(func_loadingCheck() == false)
			return;
		if(tellerMode == "") {
			alert("상담모드를 선택하세요.");
			return;
		}
		document.getElementById("CTIA").changeTellerMode(tellerMode);	// 0 - 인바운드, 1 - 아웃바운드
	}
	
	function func_changeTellerStatus(tellerStatus) { // 상담원상태변경
		if(func_loadingCheck() == false)
			return;
		if(tellerStatus == "") {
			alert("상담원상태를 선택하세요.");
			return;
		}
		document.getElementById("CTIA").changeTellerStatus(tellerStatus);
	}
	
	//2013-01-08 추가 Start//
	function func_changeGroup(cGroup1, cGroup2, cGroup3){// 소속그룹변경
	    if(func_loadingCheck() == false)
	    return;
		document.getElementById("CTIA").changeGroup(cGroup1, cGroup2, cGroup3);
	}
	//2013-01-08 추가 End//
	
	function ctiEvent(msg) // applet에서 호출시켜주는 메소드(함수명을 변경하지 마세요), msg 정의는 별첨(CTI Event.ppt) 파일을 참고하세요.
	{
	    // 예) msg: 86^데이터1^데이터2^데이터3^데이터4^시간     <--- "86": 스크린팝업, "^": 파라미터 구분자
		//document.all["log"].value = document.all["log"].value + msg + "\n\n";
		
		var tmpData = msg.split("^");
		
		if(tmpData[0] == "00") {				// 로그인 응답
			
			if(tmpData[4] == "1") {
				alert("로그인되었습니다.");
				top.main.document.location.href = "/admin/call/callCenter.jsp";
				$('#cti .on').show();
				$('#cti .off').hide();
	//2013-01-08 추가 Start//
		        //callGroupSelect(tmpData[6], tmpData[7], tmpData[8]);//소속그룹선택
	//2013-01-08 추가 End//
			} else if(tmpData[4] == "2") {
				alert("아이디가 존재하지 않습니다.");
			} else if(tmpData[4] == "3") {
				alert("비밀번호가 일치하지 않습니다.");
			} else if(tmpData[4] == "4") {
				alert("로그온이 중복되었습니다.");
			} else if(tmpData[4] == "5") {
				alert("내선번호가 중복되었습니다.");
			} else if(tmpData[4] == "6") {
				alert("등록이 안된 번호입니다.");
			} else if(tmpData[4] == "7") {
				alert("상담원기본그룹 오류입니다.");
			}
		} else if(tmpData[0] == "02") {			// 비밀번호변경 응답
			if(tmpData[4] == "1") {
				alert("비밀번호가 변경되었습니다.");
			} else if(tmpData[4] == "2") {
				alert("잘못된 아이디입니다.");
			} else if(tmpData[4] == "3") {
				alert("잘못된 비밀번호입니다.");
			} 
		} else if(tmpData[0] == "85") {			// 상담원 모드 응답
			/*if(tmpData[1] == document.form1.loginId.value) {				// 받은 데이터가 로그인한 상담원의 아이디와 같은 경우
				if(tmpData[2] == "0")
					document.form1.responseMode.value = "인바운드";
				else if(tmpData[2] == "1")
					document.form1.responseMode.value = "아웃바운드";
			}*/
		} else if(tmpData[0] == "86") {			// 스크린 팝업
			/*
					팝업타입
			 "01" : 호분배
			 "02" : 인바운드
			 "03" : 인바운드(돌려주기)
			 "04" : 아웃바운드
			 "05" : 오토콜
			 "06" : 당겨받기
			 "07" : 돌려받기
			 "08" : 3자통화
	
	
					팝업시점
			 "1" : Ring (팝업타입 "06", "07" 제외)
			 "2" : Answer
			*/
			document.form1.call_number.value = tmpData[4];
			
			//고객상담으로 화면 설정
			if (top.main.document.location.href.indexOf("callCenter.jsp") < 0) {
				top.main.document.location.href = "/admin/call/callCenter.jsp";
			}
			
			
			//Ring. 
			if (tmpData[1] == "01" && tmpData[2] == "1") {	
				
				parent.main.document.customerForm.hp_no.value	= tmpData[4];
				parent.main.document.customerForm.tel_no.value 	= tmpData[4];
				
				fnSearchCustomer(tmpData[4]);	//고객정보를 검색한다.
			}
			
			
			/*
			alert("[스크린팝업정보]\n팝업타입:" + tmpData[1] +  "\n팝업시점:" + tmpData[2] +  "\nA-1 대표번호:" + tmpData[3] + 
			      "\nA-2 발신자번호:"+ tmpData[4] + "\nA-3 IVR 연동데이터:"+ tmpData[5] + "\nA-4 CALL_ID:"+ tmpData[6] + 
			      "\nA-5 IVR메뉴번호:"+ tmpData[7] + "\nA-6 사용자데이터:"+ tmpData[8] + "\nA-7 녹취파일명:"+ tmpData[9] + 
			      "\nA-8 녹취폴더(녹취일):" + tmpData[10] + "\nB-1 대표번호:" + tmpData[11] + "\nB-2 발신자번호:" + tmpData[12] +
			      "\nB-3 IVR 연동데이터:" + tmpData[13] + "\nB-4 콜아이디:" + tmpData[14] + "\nB-5 IVR메뉴번호:" + tmpData[15] +
			      "\nB-6 사용자데이터:" + tmpData[16]);
			*/
			
		} else if(tmpData[0] == "89") {			// 상담원이 변경할 수 있는 상태정보 응답
			document.form1.tellerStatus.options.length = 0;
			for(var i=1; i < tmpData.length-1; i+=2) {
				var op = document.form1.tellerStatus
				var addedOpt=document.createElement('OPTION');
				op.add(addedOpt);
				addedOpt.value = tmpData[i];
				addedOpt.text = tmpData[i+1];
			}
		} else if(tmpData[0] == "90") {			// CTI 상태정보 응답
			var j = 0;
			statusCode = new Array((tmpData.length-2)/2);
			statusName = new Array((tmpData.length-2)/2);
			for(var i=1; i < tmpData.length-1; i+=2) {
				statusCode[j] = tmpData[i];
				statusName[j] = tmpData[i+1];
				j++;
			}
		} else if(tmpData[0] == "91") {   // CTI에 등록된 그룹정보에 대한 응답
		/*
	        //셀렉트박스 초기화
	        var callGroup = document.getElementById("callGroup");
	        var callGroupLength = document.getElementById("callGroup").options.length;
	        var opts = callGroup.getElementsByTagName("option");
	
	        if( callGroupLength > 0 ){
	            //for(var k=0; k<= callGroupLength ; k++){
	                //callGroup.options[k]= null;
	            //}
	            callGroup.innerHTML = "";
	        }
	
			var j = 0;
			groupCode1 = new Array((tmpData.length-2)/5);//대그룹코드
			groupCode2 = new Array((tmpData.length-2)/5);//중그룹코드
			groupCode3 = new Array((tmpData.length-2)/5);//소그룹코드
			groupCode4 = new Array((tmpData.length-2)/5);//그룹명
			groupCode5 = new Array((tmpData.length-2)/5);//대표번호
			for(var i=1; i < tmpData.length-1; i+=5) {
				groupCode1[j] = tmpData[i];
				groupCode2[j] = tmpData[i+1];
				groupCode3[j] = tmpData[i+2];
				groupCode4[j] = tmpData[i+3];
				groupCode5[j] = tmpData[i+4];
				var op1 = document.getElementById("callGroup");
				var addedOpt1 = document.createElement('OPTION');
				op1.add(addedOpt1);
				addedOpt1.value = groupCode5[j];
				//addedOpt1.text = tmpData[i+3];
	            var splitText = tmpData[i+3].split("-");
				addedOpt1.text = splitText[2];//소그룹
				j++;
			}
		*/
		} else if(tmpData[0] == "94") {			// 상담원 상태 변경 
			if(tmpData[1] == document.form1.loginId.value) {				// 받은 데이터가 로그인한 상담원의 아이디와 같은 경우
				for(var i=0; i < statusCode.length; i++) {
					if(statusCode[i] == tmpData[5]) {
						//document.form1.status.value = statusName[i];
						$('#call_status').text(statusName[i]);
						break;
					}
				}
				//document.form1.transferTryCnt.value =  tmpData[9];
				//document.form1.transferConnectCnt.value =  tmpData[10];
				//document.form1.ibTryCnt.value =  tmpData[11];
				//document.form1.ibConnectCnt.value =  tmpData[12];
				//document.form1.obTryCnt.value =  tmpData[13];
				//document.form1.obConnectCnt.value =  tmpData[14];
			}
		} else if(tmpData[0] == "95") {			// 고객대기자수 
			//document.form1.wattingCnt.value =  tmpData[1];
	    }else if(tmpData[0] == "24"){           // 소속그룹변경
	        if(tmpData[2] == 1){
	            alert("소속그룹이 변경되었습니다.");
	            chagePhoneNumber();
	        }else if(tmpData[2] == 2){
	            alert("실패");
	        }
	    } else if(tmpData[0] == "01") {			// 강제로그아웃(타 모듈에서 강제로그인 하면 기존의 모듈은 로그아웃 됨으로 기존 모듈에게 로그아웃 메시지 알림.)
	    	alert("강제로그아웃 되었습니다.");
	    	location.reload();
			//document.form1.responseMode.value = "";
			//document.form1.status.value = "";
			$('#call_status').text('');
			//document.form1.transferTryCnt.value =  "";
			//document.form1.transferConnectCnt.value =  "";
			//document.form1.ibTryCnt.value =  "";
			//document.form1.ibConnectCnt.value = "";
			//document.form1.obTryCnt.value =  "";
			//document.form1.obConnectCnt.value =  "";
			//document.form1.wattingCnt.value =  "";
	    } 
	}
	
	//2013-01-08 추가 Start//
	    //소속그룹변경
	    function changeGroup(){
	        var callGroup = document.getElementById("callGroup");//소속그룹
	        var outCallNum = document.getElementById("outCallNum");//발신표시번호
	
	        //outCallNum.innerHTML = callGroup.value;
	
	        var sIdx = callGroup.selectedIndex;
	        var gCode = groupCode[sIdx].split("-");
	
	        func_changeGroup(gCode[0], gCode[1], gCode[2]);
	    }
	
	    //발신표시번호 변경
	    function chagePhoneNumber(){
	        var callGroup = document.getElementById("callGroup");//소속그룹
	        var outCallNum = document.getElementById("outCallNum");//발신표시번호
	
	        outCallNum.innerHTML = callGroup.value;
	    }
	
	    //소속그룹선택
	    function callGroupSelect(sGroupCode1, sGroupCode2, sGroupCode3){
	        groupCodeLength = groupCode1.length;//소속그룹갯수
	        groupCode = new Array( groupCodeLength );//그룹배열
	        sGroupCode = sGroupCode1+"-"+sGroupCode2+"-"+sGroupCode3;//소속그룹(아웃바운드)
	        var callGroup = document.getElementById("callGroup");//소속그룹
	        var outCallNum = document.getElementById("outCallNum");//발신표시번호
	
	        for(var i=0; i<groupCodeLength; i++){
	            groupCode[i] = groupCode1[i]+"-"+groupCode2[i]+"-"+groupCode3[i];
	            if( sGroupCode == groupCode[i]){
	                callGroup.options[i].selected = true;
	                outCallNum.innerHTML = callGroup.options[i].value;
	            }
	        }
	    }
	//2013-01-08 추가 End//
	
	
	
	
	
	
	function fnSearchCustomer(call_number) 
	{	
		$.ajax({
			url: '/admin/call/customerSearch.do',
			type: "POST",
		    dataType: 'json',//html,text,json
		    data: { //파라미터
		    	hp_no : call_number,
		    	tel_no : call_number,
		    	sort_col : "customer_name"
		    },
		    error: function(data, status, err){
		    	alert(err);
		    },
			success: function(data){
				var obj = cfModal('/admin/call/selectCustomer.jsp?call_number='+call_number, data.customer_list, 600, 400);
				parent.main.setCustomerInfo(obj);
		    }
		});
		
		return false;
	}
	
	//-->
	</script>
</head>
<body>
	<%	if ("AS".indexOf(session_user_auth) > -1) { %>	
		<object id="CTIA"
		classid = "clsid:CAFEEFAC-0017-0000-FFFF-ABCDEFFEDCBA"
		codebase = "http://java.sun.com/update/1.7.0/jinstall-7u55-windows-i586.cab"
		width="0" height="0" >
		<param name="code" value="mclientagent.ClientAgent.class" />
		<param name="archive" value="./MClientAgent.jar" />
		<param name="type" value="application/x-java-applet;version=1.7"/>
		<param name="scriptable" value="false"/>
		<param name="ServerIP" value="<%= Configuration.get("cti.server.ip")%>"/>
		</object>
	<%	} %>
	
	<div id="top">
		<div id="logo">
			<a href="/admin/service/serviceList.jsp" target="main"><img src="../images/logo_admin.png"/></a>
		</div>
		<div id="cti">
			
	<%	if ("AS".indexOf(session_user_auth) > -1) { %>
			<form name="form1" method="post" onsubmit="return false;">
			<input type="hidden" name="loginId" value = ""/>	
			<input type="hidden" name="outCallNum" value="023301004"/>
			

			<span class="off">
				<input type="text" name="id" class="w80 eng" value="" placeholder="아이디"></input>
				<input type="text" name="password" class="w80" value="" placeholder="비밀번호"></input>
				<input type="text" name="extension" class="w80" value="" placeholder="내선번호"></input> 
				<button class="btn btn-primary" title="로그인" onclick="func_login(document.form1.id.value,document.form1.password.value,document.form1.extension.value);">로그인</button>
			</span>
			
			<span class="on">
				<!-- <input name="status" class="w100" value = "" readonly placeholder="상담원상태"/> -->
				<label id="call_status" class="w80 btn btn-status"></label>
				<select name="tellerStatus" onchange="func_changeTellerStatus(this.value)"></select>
				<input type="text" name="call_number" class="w100" value=""></input>
	
				<button class="btn btn-primary" title="전화받기" onclick="func_answer();">전화받기</button>
				<button class="btn btn-primary" title="전화끊기" onclick="func_hangup();">전화끊기</button>
				<button class="btn btn-primary" title="전화걸기" onclick="func_makeCall(document.form1.outCallNum.value, document.form1.call_number.value, '');">전화걸기</button>
				
				<button class="btn btn-primary" title="보류" onclick="func_hold();">보류</button>
				<button class="btn btn-primary" title="보류해제" onclick="func_unhold();">보류해제</button>
				<button class="btn btn-primary" title="담당자연결" onclick="func_blindTransfer(document.form1.call_number.value, '');">담당자연결</button>
				<button class="btn btn-primary" title="통화후연결" onclick="func_monitorTransfer();">통화후연결</button>
			
				<button class="btn btn-primary" title="로그아웃" onclick="func_logout();">로그아웃</button>
			</span>
			
			</form>
	<%	} %>
		</div>
		<div id="logout">
			<a href="../logout.do" target="_parent"><img src="../images/btn_logout.gif" border="0" align="absmiddle"/></a>
		</div>
		<div id="user">
			<%= session_dept_name %> <%= session_user_name %>
		</div>
	</div>
</body>
</html>


